"""
推导式：轻量级循环创建数据的方式
1.对列表或可迭代对象中每个元素【应用某个操作】
2.或用[满足特定条件]的元素创建子序列
3.用[生成的结果]创建新的列表
"""

#列表推导式(0-10所有偶数的平方)
lst = [i**2 for i in range(10) if i%2==0]
print(lst)

#元组推导式 得到genexpr：可迭代对象
tup = (i**2 for i in range(10) if i%2==0)
print(tuple(tup))

#集合推导式
ss = {i**2 for i in range(10) if i%2==0}
print(ss,type(ss))

#字典推导式 
dict1 = {key:key**2 for key in range(10) if key%2==0}
print(dict1,type(dict1))

#zip的应用
lst1 = [1,2,3]
lst2 = ["张三","李四","王五"]
print(list(zip(lst1,lst2)))  #zip(a,b)   得到zip格式  从短的列表
dict2 = {k:v for k,v in zip(lst1,lst2)}
print(dict2)
